home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / emacs / src / s-usg5-4.h < prev    next >
C/C++ Source or Header  |  1992-09-20  |  5KB  |  172 lines

  1. /* Definitions file for GNU Emacs running on AT&T's System V Release 4
  2.    Copyright (C) 1987, 1990 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GNU Emacs is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Emacs; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. /* This file written by James Van Artsdalen of Dell Computer Corporation.
  21.  * james@bigtex.cactus.org.
  22.  */
  23.  
  24. /* Use the SysVr3 file for at least base configuration. */
  25.  
  26. #include "s-usg5-3.h"
  27.  
  28. #define USG5_4
  29.  
  30. /* We do have multiple jobs.  Handle ^Z. */
  31.  
  32. #undef NOMULTIPLEJOBS
  33.  
  34. #define LIBS_SYSTEM -lsocket -lnsl -lelf
  35. #define ORDINARY_LINK
  36.  
  37. #if 0 /* These should be unnecessary now because of ORDINARY_LINK.  */
  38. #define START_FILES pre-crt0.o /usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xt.o
  39. #define LIB_STANDARD -lc /usr/ucblib/libucb.a /usr/ccs/lib/crtn.o
  40. #endif
  41.  
  42. /* No <sioctl.h> */
  43.  
  44. #define NO_SIOCTL_H
  45.  
  46. /* Undump with ELF */
  47.  
  48. #undef COFF
  49.  
  50. #define UNEXEC unexelf.o
  51.  
  52. /* Get FIONREAD from <sys/filio.h>.  Get <sys/ttold.h> to get struct
  53.  * tchars. But get <termio.h> first to make sure ttold.h doesn't
  54.  * interfere.  And don't try to use SIGIO yet.
  55.  */
  56.  
  57. #ifdef emacs
  58. #include <sys/filio.h>
  59. #include <termio.h>
  60. #include <sys/ttold.h>
  61. #include <signal.h>
  62. #include <sys/wait.h>
  63. #include <sys/stream.h>
  64. #include <sys/stropts.h>
  65. #include <sys/termios.h>
  66. #undef SIGIO
  67. #endif
  68.  
  69. /* libc has this stuff, but not utimes. */
  70.  
  71. #define HAVE_RENAME
  72. #define HAVE_SELECT
  73. #define HAVE_TIMEVAL
  74. #define HAVE_CLOSEDIR
  75. #define HAVE_GETTIMEOFDAY
  76. #define HAVE_DUP2
  77.  
  78. #define USE_UTIME
  79.  
  80. /* <sys/stat.h> *defines* stat(2) as a static function.  If "static"
  81.  * is blank, then many files will have a public definition for stat(2).
  82.  */
  83.  
  84. #undef static
  85.  
  86. /* We need bss_end from emacs.c for undumping */
  87.  
  88. #ifndef USG_SHARED_LIBRARIES
  89. #define USG_SHARED_LIBRARIES
  90. #endif
  91.  
  92. /* We can support this */
  93.  
  94. #define CLASH_DETECTION
  95.  
  96. #define HAVE_PTYS
  97. #define HAVE_SETSID
  98. #define HAVE_TCATTR
  99.  
  100. /* It is possible to receive SIGCHLD when there are no children
  101.    waiting, because a previous waitsys(2) cleaned up the carcass of child
  102.    without clearing the SIGCHLD pending info.  So, use a non-blocking
  103.    wait3 instead, which maps to waitpid(2) in SysVr4. */
  104.  
  105. #define HAVE_WAIT_HEADER
  106. #define WAITTYPE int
  107. #define wait3(status, options, rusage) \
  108.   waitpid((pid_t) -1, (status), (options))
  109. #define WRETCODE(w) (w >> 8)
  110.  
  111. /* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
  112.    subprocesses the usual way.  But TIOCSIGNAL does work for PTYs, and
  113.    this is all we need.  */
  114.  
  115. #define TIOCSIGSEND TIOCSIGNAL
  116.  
  117. /* This change means that we don't loop through allocate_pty too many
  118.    times in the (rare) event of a failure. */
  119.  
  120. #undef FIRST_PTY_LETTER
  121. #define FIRST_PTY_LETTER 'z'
  122.  
  123. /* This sets the name of the master side of the PTY. */
  124.  
  125. #define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
  126.  
  127. /* This sets the name of the slave side of the PTY.  On SysVr4,
  128.    grantpt(3) forks a subprocess, so keep sigchld_handler() from
  129.    intercepting that death.  If any child but grantpt's should die
  130.    within, it should be caught after sigrelse(2). */
  131.  
  132. #define PTY_TTY_NAME_SPRINTF            \
  133.   {                        \
  134.     char *ptsname(), *ptyname;            \
  135.                         \
  136.     sighold(SIGCLD);                \
  137.     if (grantpt(fd) == -1)            \
  138.       fatal("could not grant slave pty");    \
  139.     sigrelse(SIGCLD);                \
  140.     if (unlockpt(fd) == -1)            \
  141.       fatal("could not unlock slave pty");    \
  142.     if (!(ptyname = ptsname(fd)))        \
  143.       fatal ("could not enable slave pty");    \
  144.     strncpy(pty_name, ptyname, sizeof(pty_name)); \
  145.     pty_name[sizeof(pty_name) - 1] = 0;        \
  146.   }
  147.  
  148. /* Push various streams modules onto a PTY channel. */
  149.  
  150. #define SETUP_SLAVE_PTY \
  151.   if (ioctl (xforkin, I_PUSH, "ptem") == -1)    \
  152.     fatal ("ioctl I_PUSH ptem", errno);        \
  153.   if (ioctl (xforkin, I_PUSH, "ldterm") == -1)    \
  154.     fatal ("ioctl I_PUSH ldterm", errno);    \
  155.   if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
  156.     fatal ("ioctl I_PUSH ttcompat", errno);
  157.  
  158. /* The definition of this in s-usg5-3.h is not needed in 5.4.  */
  159. /* liblnsl_s should never be used.  The _s suffix implies a shared
  160.    library, as opposed to a DLL.  Share libraries were used in SVR3, and are
  161.    available only in order to allow SVR3 binaries to run.  They should not be
  162.    linked in to new binaries. -- caraway!pinkas@caraway.intel.com.  */
  163. #undef LIBX10_SYSTEM
  164. #undef LIBX11_SYSTEM
  165.  
  166. /* Tell x11term.c and keyboard.c we have the system V streams feature.  */
  167. #define SYSV_STREAMS
  168.  
  169. /* This definition was suggested for next release.
  170.    So give it a try.  */
  171. #define HAVE_SOCKETS
  172.